但在聊這問題之前,想先請大家想想看,你有沒有曾經遇過那種讓你覺得強的不可思議的大神同事,總是看幾眼程式碼就抓到 bug、掃兩遍官方文件就找到解法、聽完 PM 描述腦中就有了架構圖、Leetcode 競賽你還沒讀完題目他已經 AC 了... 總而言之某些令你覺得難以翻越的壁壘,他輕輕鬆鬆就飛了過去。
那再問自己一個問題:你覺得有一天也可能成為他們嗎?
好了,我們正文開始
這就要從刻意練習這本書一直提到的觀念談起了,先讓我們來認識一個叫做 心智表徵(mental representation 的東西,這是個認知心理學的專有名詞,涵蓋的概念很廣泛,不只視覺,包含聽覺、嗅覺、味覺也都包含在內。但讓我們先只截取與知識學習較為相關的部分,並且用比較通俗易懂的方式解釋一下。
所謂心智表徵,你可以想成是人腦對某個技能建立起的一個個心智捷徑。下面以一段程式碼當例子。(但不用急著看懂沒關係)
class Solution:
def solve(self, x: int) -> int:
left = 1
right = x
while left <= right:
mid = (left + right) // 2
if mid * mid > x:
right = mid - 1
elif mid * mid < x:
left = mid + 1
else:
return mid
return left - 1
看到這個畫面,根據讀者對程式開發的認知多寡,可能會有四種不同層級的認知。
而心智表徵,在這裡指的就是那個,能讓你不到一秒就辨識出這是什麼東西,或更進一步,一秒就辨識出這段文字背後所代隱藏含義的能力,換句話說,就是心智在接受過相關鍛鍊後,建立出來的捷徑,而在一個領域內,當你在越複雜的層次上,建立起越多的捷徑,你就越專業也越厲害。
這種心智的捷徑其實到處都是,光你抬頭一眼就能指認出眼前桌上的每件物品,也是一種心智表徵,是從你幼兒時期慢慢建立起來的。
現在讓我們回到開頭的問題,其實這些感覺像超人般的能力,一點也不神秘,不過就是他的大腦在過往的大量練習中,早已建立出非常多的相關捷徑,讓他能在看到問題的瞬間,就馬上連結到相關聯的知識上,大幅加速思索速度。
如果你沒有一樣扎實的心智表徵在背後輔助,那當然碰到問題只能慢慢來慢慢想,但如果你曾經因此覺得問題是出在自己不夠聰明,那不妨想想看,你會覺得一個分不清楚貓跟狗的差異的 1 歲小孩很笨嗎?還是覺得這跟笨不笨無關吧,就只是他還沒累積足夠量的知識(心智表徵)而已,等他長大(其實意思就是看得次數夠多了)自然就會了。那其實程式能力、數學能力等等,本質上也沒有太大的差別。
好消息是,成人的大腦依然充滿可塑性,也就是說,不論你幾歲,或你自覺有沒有天份,只要經過正確的方式,都能建立起來對應的心智表徵,達到想要的成果。問題只在於怎樣建立?
根據刻意練習一書,答案很簡單:
培養好的心智表徵的關鍵極為單純,就是練習的次數跟品質
是的,就是練習,有效的練習跟大量的練習,如此而已。聽起來像廢話,但練習其實並不簡單,好的練習與壞的練習成果天差地遠,而以下四個法則,可以讓你快速抓到練習的核心重點:
明天開始的篇章,我會依序詳細介紹這幾個重點!敬請期待
Live as if you were to die tomorrow. Learn as if you were to live forever.
— Mahatma Gandhi